#!/bin/bash
#Shell Command For Backup MySQL Database Everyday Automatically By Crontab
#Author : Carlos Wong
#Date : 2015-05-04

#配置参数
#数据库用户名
USER=zplay
#数据库用户密码
PASSWORD=zplay888
HOST=10.171.62.27
#数据库名称
DATABASE=zplay_adv
#表名TABLES="t_ad t_developer"
TABLES="t_ad t_ad_actual_day t_ad_package t_ad_schedule t_advertiser t_advertiser_balance t_application t_application_channel t_application_img t_bankinfo t_developer t_developer_income t_dictionaries t_finance_balance t_finance_confirm t_mail t_notice t_placement t_placement_config t_placement_material t_placement_type_rel t_ssp t_ssp_balance t_ssp_confirm t_sys_resource t_sys_role t_sys_role_perminssion_rel t_sys_role_resource_rel t_sys_user t_sys_user_role_rel"
#管理员邮箱地址，用以发送备份失败消息提醒
WEBMASTER=liuchen@zplay.cn
#备份文件存储路径
BACKUP_DIR=/data/dbbak/zplay/
#日记文件路径
LOGFILE=/data/dbbak/zplay/zplay_adv.log
#日期格式（作为文件名）
DATE=`date +%Y%m%d-%H%M`
#备份文件名
DUMPFILE="zplay_adv_"$DATE.sql
#压缩文件名
ARCHIVE=zplay_adv_$DATE.sql.tar.gz
#mysqldump 参数 详情见帮助 mysqldump －help
OPTIONS="-u$USER -p$PASSWORD -h$HOST $DATABASE $TABLES"

#判断备份文件存储目录是否存在，否则创建该目录
if [ ! -d $BACKUP_DIR ] ;
then
mkdir -p “$BACKUP_DIR”
fi

#开始备份之前，将备份信息头写入日记文件
echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE

#切换至备份目录
cd $BACKUP_DIR
#使用mysqldump 命令备份制定数据库，并以格式化的时间戳命名备份文件
mysqldump $OPTIONS > $DUMPFILE
#判断数据库备份是否成功
if [[ $? == 0 ]]; then
#创建备份文件的压缩包
tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1
#输入备份成功的消息到日记文件
echo "[$ARCHIVE] Backup Successful!" >> $LOGFILE
#删除原始备份文件，只需保 留数据库备份文件的压缩包即可
rm -f $DUMPFILE
else
echo "Database Backup Fail!" >> $LOGFILE
echo "$DATABASE Backup Fail" | mail -s "Database:$DATABASE Daily Backup Fail" $WEBMASTER
fi
#输出备份过程结束的提醒消息
echo "Backup Process Done"
echo "———————————————– " >> $LOGFILE